﻿@{
	Layout = "~/Views/Shared/_Layout.cshtml";
}

<p>
This is a demo website that demostrates how MVC.ApiExplorer can help you on developing APIs in an ASP.NET MVC project.
</p>

<ul class="demo">
	<li class="demo-item">
		<a href="@Url.Action("Index", "API")" target="_blank">Basic Api</a> (@Url.Action("Index", "API"))
		<p>
		This part of example demonstrates that the most basic APIs people made on an ASP.MVC project. 
		You can find that MVC.ApiExplorer automaticlly generates all actions (and it's parameters) of API controller except "Index" action which decorated with "NonApi" attribute.
		</p>
		<p>
		To get more understand please take a look at source of APIController.cs
		</p>
	</li>
	<li class="demo-item">
		<a href="@Url.Action("Index", "ComplexModelAPI")" target="_blank"s>Complex Model API</a> (@Url.Action("Index", "ComplexModelAPI"))
		<p>
		This part of example demonstrates that how MVC.ApiExplorer works with complex model binding. 
		MVC.ApiExplorer automaticlly generates all properties of complex model and support for 3 deep of subclasses.
		</p>
		<p>
		To get more understand please take a look at source of ComplexModelAPIController.cs
		</p>
	</li>
	<li class="demo-item">
		<a href="@Url.Action("Index", "EnumerableAPI")" target="_blank">Enumerable API</a> (@Url.Action("Index", "EnumerableAPI"))
		<p>
		This part of example demonstrates that how MVC.ApiExplorer works with enumerable parameters. 
		MVC.ApiExplorer automaticlly generates all enumerable parameters of each action for 3 times.
		</p>
		<p>
		To get more understand please take a look at source of EnumerableAPIController.cs
		</p>
	</li>
	<li class="demo-item">
		<a href="@Url.Action("Index", "InArea", new { area="AnArea"})" target="_blank">APIs in an area</a> (@Url.Action("Index", "InArea", new { area = "AnArea" }))
		<p>
		This part of example demonstrates that APIs which belong to an area.
		</p>
		<p>
		To get more understand please take a look at source of InAreaController.cs and its View.
		</p>
	</li>
	<li class="demo-item">
		<a href="@Url.Action("Index", "ExploreOutterAPI", new { area = "AnArea" })" target="_blank">Explore APIs which out of current area</a> (@Url.Action("Index", "ExploreOutterAPI", new { area = "AnArea" }))
		<p>
		This part of example demonstrates that how to explore APIs which <strong>NOT</strong> belong to current area.
		In this demo. We explore "Basic Api" in the area.
		</p>
		<p>
		To get more understand please take a look at source of ExploreOutterAPIController.cs and its View.
		</p>
	</li>
</ul>

@section javascript{

}